﻿using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using STT.Business;
using STT.Entities;
using System.IO;
using STT.Layer.Connection;
using System.Net;
using System.Net.Http;
using System.Web.ApplicationServices;
using System.Net.Configuration;
using System.Net.Mail;
using System.Net.Security;
using System.Text;
using System.Configuration;
namespace STT.Home
{
    public partial class UcLayMatKhau1 : System.Web.UI.UserControl
    {
        public string str = ConfigurationManager.ConnectionStrings["DTNHConnectionString"].ConnectionString;
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        Data dt = new Data();
        public string CreateLostPassword(int PasswordLength)
        {
            string _allowedChars = "abcdefghijk0123456789mnopqrstuvwxyz";
            Random randNum = new Random();
            char[] chars = new char[PasswordLength];
            int allowedCharCount = _allowedChars.Length;

            for (int i = 0; i < PasswordLength; i++)
            {
                chars[i] = _allowedChars[(int)((_allowedChars.Length) * randNum.NextDouble())];
            }
            return new string(chars);
        }







        //Tạo thuộc tính để lấy giá trị email trong web.config 
        public static String FormAddress
        {
            get
            {
                SmtpSection cfg = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
                return cfg.Network.UserName;
            }
        }

        //Hàm send mail 
        public string Send(string subject, string body, string to, bool isHtml, bool isSSL)
        {
            try
            {
                using (MailMessage mail = new MailMessage())
                {
                    mail.From = new MailAddress("d6itboy@gmail.com", "Quản lý nhân viên");
                    mail.To.Add(to);
                    mail.Subject = subject;
                    mail.Body = body;
                    mail.IsBodyHtml = isHtml;
                    SmtpClient client = new SmtpClient();
                    client.EnableSsl = isSSL;
                    client.Send(mail);
                }
            }
            catch
            {
                return "Gửi mail thất bại!";
            }
            return "Gửi mail thành công!";
        }
        //Lấy lại mật khẩu 
        public string BodyMail_LayLaiMatKhau(string Email, string Pass)
        {
            StringBuilder mailbody = new StringBuilder();
            mailbody.Append("<html><head><title>Lấy lại mật khẩu</title></head>");
            mailbody.Append("<body>");
            mailbody.Append("<p>Chào bạn</p>");
            mailbody.Append("<p>Thông tin tài khoản của bạn: </p>");
            mailbody.Append("<p><b>Email: </b>" + Email);
            mailbody.Append("</p><p><b>Mật khẩu: </b>" + Pass);
            mailbody.Append("<p> Chân thành cảm ơn!");
            return mailbody.ToString();
        }




        void ThongBao(string Loi)
        {
            ScriptManager.RegisterClientScriptBlock(this, GetType(), "Thông báo!", "<script>alert('" + Loi + "')</script>", false);
        }
        bool KiemTraDuLieu()
        {
            return BTbDangNhap.KiemTraDuLieu(new ETbDangNhap
            {
                Email = txtEmail.Text
            });
        }
        public static string mk;
        protected void btnGuiYeuCau_Click(object sender, EventArgs e)
        {
            try
            {
                if (KiemTraDuLieu())
                {
                    mk = CreateLostPassword(7);

                    if (dt.GetDataTableByIddn("Get_NameDNByEmail", txtEmail.Text).Rows.Count > 0)
                    {
                       
                            
                            BTbDangNhap.UpdatePassword1(new ETbDangNhap
                                {
                                    TenDangNhap= dt.GetDataTableByIddn("Get_NameDNByEmail", txtEmail.Text).Rows[0]["TenDN"].ToString().Trim(),
                                    RadomPass="7T6Van4S",
                                    MatKhau=mk
                                })
                                   ;
                            string bodymail = BodyMail_LayLaiMatKhau(txtEmail.Text, mk);
                            Send("Lấy lại mật khẩu", bodymail, txtEmail.Text, true, true);
                            ThongBao("Mật khẩu đã được chuyển tới email của bạn , bạn hãy vào email để nhận lại mật khẩu của mình !");
                        
                    }
                }
                else
                {
                    ThongBao("Email không tồn tại ! ");
                }


            }
            catch
            {
                ThongBao("Lấy lại Email thất bại! Hệ thống đang cập nhật!");
            }
        }  
    }
}